package cn.gson.boot.model.service;

import cn.gson.boot.model.dao.AttributeDao;
import cn.gson.boot.model.dao.AttributeValueDao;
import cn.gson.boot.model.dao.CompetitorDao;
import cn.gson.boot.model.mapper.AttributeMapper;
import cn.gson.boot.model.mapper.CompetitorMapper;
import cn.gson.boot.model.pojos.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class AttributeService {
    @Autowired
    AttributeMapper attributeMapper;
    @Autowired
    AttributeDao attributeDao;
    @Autowired
    AttributeValueDao attributeValueDao;

    //分页查询
    public List<Attribute> selectAttr(String search, String type) {
        return attributeMapper.selectAttr(search,type);
    }

    //新增规格
    public void addAttribute(Attribute attribute,AttributeValue attributeValue) {
        //if(attribute.getAttributeId()==0) {
            for (int i = 0; i < attributeMapper.selectAttrName().size(); i++) {
                if (attributeMapper.selectAttrName().get(i).getAttributeName().equals(attribute.getAttributeName())) {
                    if (attributeMapper.selectAttrName().get(i).getCategory().getCategoryId() == attribute.getCategory().getCategoryId()) {
                        attributeValue.setAttribute(attributeMapper.selectAttrName().get(i));
                        attributeValueDao.save(attributeValue);
                        return;
                    } else {
                        attributeDao.save(attribute);
                        attributeValue.setAttribute(attribute);
                        attributeValueDao.save(attributeValue);
                    }
                    /*  */
                } else if (i == attributeMapper.selectAttrName().size() - 1) {
                    attributeDao.save(attribute);
                    attributeValue.setAttribute(attribute);
                    attributeValueDao.save(attributeValue);
                }
            }
//        }else{
//            attributeDao.save(attribute);
//            attributeValue.setAttribute(attribute);
//            attributeValueDao.save(attributeValue);
//        }

    }

    //新增弹框查询所有规格名
    public List<Attribute> selectAttrName() {
        return attributeMapper.selectAttrName();
    }

    //新增弹框根据类别id查询所有规格名
    public List<Attribute> selectAttributeName(Integer categoryId) {
        return attributeMapper.selectAttributeName(categoryId);
    }


    //查询需要修改的规格值
    public List<Attribute> upAttribute(Integer attributevId) {
        return attributeMapper.upAttribute(attributevId);
    }

    //查询类别下有哪些规格
    public List<Attribute> selectAttribute(Integer categoryId) {
        return attributeMapper.selectAttribute(categoryId);
    }

    //查询某个规格有没有产品使用
    public List<ChanpincongbiaoShuxinzhi> selectCp(Integer attributevId) {
        return attributeMapper.selectCp(attributevId);
    }

    //删除规格和规格值
    public void delAttributeValue(Integer attributevId) {
        attributeValueDao.deleteById(attributevId);
    }

    //删除类别时查询类别是否被使用
    public List<Attribute> selectAttrCategory(Integer categoryId) {
        return attributeMapper.selectAttrCategory(categoryId);
    }

    //查询类别下有哪些规格
    public List<Attribute> selectCatAttr(Integer categoryId) {
        return attributeMapper.selectCatAttr(categoryId);
    }

}
